package com.yunchao.feature.business.data.datasource.api.model

import com.google.gson.annotations.SerializedName

/**
 * 各大商业银行使用的
 */
internal data class CommonApiModel(
    @SerializedName(
        value = "tranTypeID",
        alternate = ["tranTypeId", "TranTypeId"]
    ) val tranTypeID: String? = null, //    String 17 N  交易代码
    @SerializedName(
        value = "tranID",
        alternate = ["tranId", "TranId"]
    ) val tranID: String? = null,//   String 13 N  业务序号
    @SerializedName(
        value = "chkUserId",
        alternate = ["ChkUserId", "chkUserID"]
    ) val chkUserId: String? = null,//    String 19 Y  复核人id
    @SerializedName(
        value = "sequency",
        alternate = ["Sequency"]
    ) val sequency: String? = null,// String 50 N  交易流水号
    @SerializedName(
        value = "giveDataTime",
        alternate = ["GiveDataTime"]
    ) val giveDataTime: String? = null,// String 14 N  交易时间
    @SerializedName(
        value = "giveOperator",
        alternate = ["GiveOperator"]
    ) val giveOperator: String? = null,// String 19 N  操作人id
    @SerializedName(
        value = "cardID",
        alternate = ["CardID", "cardId"]
    ) val cardID: String? = null,//   String 20 Y  操作人卡号
    // 使用 @SerializedName 注解指定多个可能的 JSON 字段名
    @SerializedName(
        value = "busiInfoList",
        alternate = ["busiinfolist", "BusiInfoList"]
    ) val busiInfoList: List<CommonPackApiModel>? = null,
    @SerializedName(
        value = "packInfoList",
        alternate = ["packinfolist", "Packinfolist"]
    ) val packInfoList: List<CommonPackApiModel>? = null,
    @SerializedName(
        value = "stockPackInfoList",
        alternate = ["stockpackinfolist", "StockPackInfoList"]
    ) val stockPackInfoList: List<CommonPackApiModel>? = null,
) {
   internal data class CommonPackApiModel(
        @SerializedName(
            value = "voucherTypeName",
            alternate = ["VoucherTypeName"]
        ) val voucherTypeName: String? = null,//  String 15 N  券别名称
        @SerializedName(
            value = "val",
            alternate = ["Val"]
        ) val value: String? = null,//  String 10 N  面额
        @SerializedName(
            value = "paperTypeID",
            alternate = ["paperTypeId", "PaperTypeID", "PaperTypeId"]
        ) val paperTypeID: String? = null,//  String 1  N  券别说明ID
        @SerializedName(
            value = "paperTypeName",
            alternate = ["PaperTypeName"]
        ) val paperTypeName: String? = null,//    String 15 N  券别说明名称
        @SerializedName(
            value = "sackMoney",
            alternate = ["SackMoney"]
        ) val sackMoney: String? = null,//String  18,2   N  封装金额
        @SerializedName(
            value = "sackNo",
            alternate = ["SackNo"]
        ) val sackNo: String? = null,//String 50 N  锁条号
        @SerializedName(
            value = "voucherTypeId",
            alternate = ["voucherTypeID", "VoucherTypeID", "VoucherTypeId"]
        ) val voucherTypeId: String? = null,//    String 6  N  券别ID
        @SerializedName(
            value = "bundles",
            alternate = ["Bundles"]
        ) val bundles: String? = null,//  String 2  N  捆数
        @SerializedName(
            value = "tie",
            alternate = ["Tie"]
        ) val tie: String? = null,//  String 3  N  把数
        @SerializedName(
            value = "oprDT",
            alternate = ["oprDt"]
        ) val oprDT: String? = null,//    String 14 N  封装时间
        @SerializedName(
            value = "totalMoney",
            alternate = ["TotalMoney"]
        ) val totalMoney: String? = null,//   String 18,2   N  总金额
        @SerializedName(
            value = "mustOutFlag",
            alternate = ["MustOutFlag"]
        ) val mustOutFlag: String? = null,//String   1  N  是否必出箱
    )
}